This invention arose during development of a continuous media server at Microsoft.RTM. Corporation. This media server will be used in conjunction with interactive TV systems to provide video-on-demand services. Video-on-demand services allow a cable television subscriber viewer to select a movie or other video and to view it on his or her own time schedule. This is different than "pay-per-view" services that generally offer only a limited number of movies at specific starting times. Video-on-demand allows different viewers to select different movies for viewing at arbitrary times.
Video-on-demand utilizes digital data transmission capabilities of cable TV and/or telephone distribution systems. In the system being developed by Microsoft.RTM., a cable headend supplies multiple independent video streams to set-top boxes in individual subscribers' homes. At the headend, a plurality of cooperating data handlers supply the video streams. Each data handler comprises a conventional computer with a high-capacity disk storage system. The data for a single video stream is distributed over all the data handlers. The data handlers cooperate to merge their various portions of data into a single continuous data stream. For instance, one data handler might supply the first second of video data and then hand off to another data handler for the next second of video data.
While the Microsoft.RTM. continuous media server is network-independent, it is currently contemplated that best performance will be achieved when using ATM (asynchronous transfer mode) as a networking transport. ATM offers quality of service guarantees and scalability to high bandwidths, both of which are valuable when transmitting large numbers of independent data streams. It is desirable to use ATM technology for headend to user connections as well as for switching and connections within the headend itself.
Implementing the Microsoft.RTM. continuous media server on ATM presents several challenges. One challenge is to keep interactions between end-point devices and the media server relatively simple. For instance, it would be undesirable to require a set-top box to communicate with all of the data handlers in order to request a video stream. Rather, the continuous media server should appear as a single device which sources a single, merged data stream. Any complexities in merging data from separate data handlers should be transparent to the set-top box. The architectures and methods described below accomplish this objective.